# clickform doesn't seem to work for floating 3d windows
# so we just take the first.
#
if clickview is not None and clickview.info["type"]=="3D":
view = clickview
else:
view = find3DView(editor)
if view is None:
quarkx.msgbox("Need an open 3D view for this one!",
MT_ERROR,MB_OK)
return
#
# Should have a 3D view here
#
pos, yaw, pitch = view.cameraposition
dist = abs(pos - face.origin)
if reverse:
norm = -face.normal
else:
norm = face.normal
newpos = face.origin+dist*(norm)
pitch, yaw = vec2rads(-norm)
view.cameraposition = newpos, yaw, pitch
editor.invalidateviews()
def freezeclick(m, face=o, editor=editor):
appendToAttr(editor, 'frozenFaces', face)
editor.invalidateviews()
def unfreezeclick(m, face=o, editor=editor):
removeFromAttr(editor, 'frozenFaces', face)
editor.invalidateviews()
lockitem = qmenu.item("Lock Vertices",lockclick,"Locks all vertices on this face")
unlockitem = qmenu.item("Unlock Vertices", unlockclick,"Unlocks vertices on this face")
freezeitem = qmenu.item("Freeze Face", freezeclick,"|Plane of face doesn't move, so vertices are confined to move within it. (So they don't go exactly where they're told to).")
unfreezeitem = qmenu.item("Unfreeze Face", unfreezeclick, "|To unfreeze all frozen faces, clear locks on vertex menu.")
freezer = freezeitem
try:
freezelist = editor.frozenFaces
except (AttributeError):
pass
else:
for face in freezelist:
if o is face:
freezer = unfreezeitem
break
viewitem = qmenu.item("Look At", viewclick, "|An open 3D view shifts to look at this face head on.\n (SHIFT to look at the face from the back)")